UniqueInstance is a class which can have only one instance. Alloc, copy and free return error.
NOTE InterfaceBuilder uses _zoneAlloc() to create an instance of a custom object. It does not call +alloc. By overriding _zoneAlloc() for classes which respond to +uniqueInstance we guarantee that only one instance is ever allocated. It is necessary to remember that if multiple instances of a UniqueInstance subclass are included in an application's nib files then -init will be multiply called on that instance.